package com.waitingresult.str;

/**
 * ALL right reserved,Designed By WangShuai
 *
 * @author : WangShuai
 * @ClassName: StringDemo
 * @Description:
 * @date: 2021/10/31 16:51
 * @version: 1.0
 */

public class StringDemo {
    /**
     * 字符串 API
     * 其值 不可以修改.
     * Java程序中所有的双引号字符串, 都是String类的对象
     * <p>
     * String的特点
     * 字符串不可变,他们的值在创建智慧不能被更改, 但是可以被共享
     * <p>
     * 字符串效果上相当于字符数组(char[]),单底层原理是字节数组(byte[])
     * JDK8及以前,是字符数组, JDK9及以后是字节数组
     * <p>
     * <p>
     * StringBUilder
     * 为什么使用StringBUilder
     * 因为 使用String对象, 每次进行拼接都会构建出一个新的对象, 既浪费时间又浪费内存
     * 且这种操作还不可避免,而StringBUilder不会产生新的对象 所以可以解决这个问题
     * 是一个可变的字符串类
     */
    public static void main(String[] args) {
       // methods1();
        String s = "cnm";
        System.err.println(checkStringContains(s,"n"));
    }
    private static boolean checkStringContains(String perString,String containsString){
        return perString.contains(containsString);
    }

    private static void methods1() {
        StringBuilder str = getStr();
        str.append(123);
        //反转
        StringBuilder reverse = str.reverse();
        System.out.println(reverse);

        //String与StringBuilder 相互转换
        //SB转换S
        String s = str.toString();
        System.out.println(s);
        //S转换SB
        StringBuilder stringBuilder = new StringBuilder(s);
        System.out.println(stringBuilder);
    }

    public static StringBuilder getStr() {
        return new StringBuilder();
    }
}
